
#pragma once
#include "OGRE\Ogre.h"
#include "OIS\OIS.h"

class OgreFrameListener : public Ogre::FrameListener
{
public:
	OgreFrameListener(Ogre::RenderWindow*, Ogre::Camera*, Ogre::Viewport*, Ogre::SceneNode*, Ogre::Entity*);
	~OgreFrameListener();
	
	bool frameStarted(const Ogre::FrameEvent &evt);
	/*
	bool frameRenderingQueued(const Ogre::FrameEvent &evt) {
		std::cout<<"<<FrameRenderingQueued>>"<<std::endl;
		return true;
	}

	bool frameEnded(const Ogre::FrameEvent &evt) {
		std::cout<<"<<FrameEnded>>"<<std::endl;
		return true;
	}
	*/

private:
	OIS::InputManager* _InputManager;
	OIS::Keyboard* _Keyboard;
	OIS::Mouse* _Mouse;

	Ogre::Camera* _Cam;
	Ogre::Viewport* _viewport;
	Ogre::SceneNode* _node;

	Ogre::AnimationState* _aniStateTop;
	Ogre::AnimationState* _aniStateBottom;
	
	float _MovementSpeed;
	float _WalkingSpeed;

	bool _comp1, _comp2, _comp3;
	bool _down1, _down2, _down3;
};